/**
 * 
 */
package com.jcfy.framework.base;

/**
 * <pre>
 * <p>Title: </p>
 * <p>Description: 错误编码说明：错误编码共六位， 前两位表示错误级别，中间两位为模块，后两位为错误错误编码，
 * 				        错误级别：10:系统级别，20：服务级别
 * 				        模块：01：数据查询模块，02：运维模块，03：预处理模块，04：数据分析模块
 * 				   eg:100101
 * 				   10为系统级别错误，01为模块，01为错误编码</p>
 * <p>Copyright: Copyright (c) 2010 - 2016 </p>
 * <p>Company: Beijing Risenb Technology Co.,Ltd. </p>
 * <p>Build: 2016年11月7日 下午6:26:05 </p>
 * </pre>
 *
 * @author Chang Yuxin
 * @version 1.0
 */
public enum Error {
	//----------------------------------------系统
	/** 系统异常 */
	_100000(100000, "系统异常"),
	/** 未登录或会话已超时 */
	_100001(100001, "未登录或会话已超时"),
	/** 无效参数 */
	_100002(100002, "无效参数"),
	/** 签名效验失败 */
	_100003(100003, "签名效验失败"),
	/** 权限不足 */
	_100004(100004, "权限不足"),
	//----------------------------------------用户模块
	/** 账号不存在 */
	_200101(200101, "账号密码错误"),
	/** 账号已冻结 */
	_200102(200102, "账号已冻结"),
	_200103(200103, "统计数据失败"),
	_200104(200104, "统计数据无结果"),
	/** 表单未填写完整 */
	_200105(200105, "表单未填写完整"),
	_200106(200106, "不能重复发布"),
	//----------------------------------------数据运维模块
	/** 参数为空 */
	_200201(200201, "参数为空"),
	_200202(200202, "参数长度超长，最大:"),
	/** 查询无结果 */
	_200203(200203, "查询无结果"),
	/** 更新失败 */
	_200204(200204, "更新失败"),
	/** 删除失败 */
	_200205(200205, "删除失败"),
	_200206(200206, "请输入数字"),
	_200207(200207, "不能小于1"),
	_200208(200208, "不能大于100"),
	/** 添加失败 */
	_200211(200211, "添加失败"),
	_200212(200212, "参数重复"),
	_200213(200213, "数据错误"),
	/** 操作失败 */
	_200301(200301, "操作失败"),
	_200302(200302, "电话号码不存在！"),
	_200303(200303, "修改密码不成功！"),
	_200304(200304, "验证码错误！"),
	_200305(200305, "旧密码输入错误！"),
	_200306(200306, "验证码错误"),
	_200307(200307, "注册失败，号码已经被注册"),
	_200308(200308, "请输入正确的手机号码！"),
	_200309(200309, "验证码已失效！"),
	_200310(200310, "手机号码已绑定！"),
	//----------------------------------------订单模块
	_200400(200400, "支付失败！"),
	_200401(200401, "支付订单创建失败！")
	;



	/** 错误编码 */
	private int code;

	/** 错误信息 */
	private String msg;

	private Error(int code, String msg) {
		this.code = code;
		this.msg = msg;
	}

	/**
	 * @return the code
	 */
	public int getCode() {
		return code;
	}
	
	/**
	 * @param name
	 * @return String
	 */
	public static int code(String name){
		return Error.valueOf(name).code;
	}
	
	/**
	 * @param code the code to set
	 */
	public void setCode(int code) {
		this.code = code;
	}

	/**
	 * @return the msg
	 */
	public String getMsg() {
		return msg;
	}
	
	/**
	 * @param name
	 * @return String
	 */
	public static String msg(String name){
		return Error.valueOf(name).msg;
	}
	
	/**
	 * @param msg the msg to set
	 */
	public void setMsg(String msg) {
		this.msg = msg;
	}
}
